ASP.NET Core অ্যাপ্লিকেশন চালানোর জন্য দুটি জনপ্রিয় সার্ভার ব্যবহৃত হয়: IIS (Internet Information Services) এবং Kestrel। এই দুটি সার্ভার ব্যবহৃত হয় তাদের নিজস্ব বৈশিষ্ট্য, পারফরম্যান্স এবং ব্যবহারের পরিস্থিতির উপর ভিত্তি করে। ASP.NET Core অ্যাপ্লিকেশন দুটি সার্ভারেই চালানো যেতে পারে, তবে সাধারণত তাদের ব্যবহারের ধরন এবং স্থাপনার পদ্ধতি আলাদা। নিচে IIS এবং Kestrel সার্ভারের মধ্যে পার্থক্য এবং কীভাবে এগুলি ব্যবহার করা যায় তা বর্ণনা করা হয়েছে।
Kestrel হলো ASP.NET Core এর জন্য একটি উচ্চ পারফরম্যান্স, লাইটওয়েট ওয়েব সার্ভার যা মূলত ক্রস-প্ল্যাটফর্ম সমর্থন করে। এটি ASP.NET Core অ্যাপ্লিকেশন চালানোর জন্য ডিফল্ট সার্ভার হিসেবে ব্যবহৃত হয় এবং এটি HTTP/1.x, HTTP/2 প্রটোকল সমর্থন করে।
ASP.NET Core অ্যাপ্লিকেশন যদি Kestrel সার্ভারে চলবে, তবে সেটি ডিফল্টভাবে Program.cs ফাইলে কনফিগার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো:
Program.cs:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel()
.UseStartup<Startup>();
});
}
এখানে UseKestrel()
মেথড ব্যবহার করে Kestrel সার্ভার চালানোর জন্য কনফিগার করা হয়েছে।
IIS হলো Windows-ভিত্তিক একটি ফিচার-প্যাকড ওয়েব সার্ভার, যা ASP.NET Core অ্যাপ্লিকেশন চালানোর জন্য একটি জনপ্রিয় পছন্দ। IIS উচ্চ স্তরের সিকিউরিটি, স্কেলিং এবং রিভার্স প্রক্সি হিসেবে কাজ করে, এবং এটি ডোমেইন-ভিত্তিক অ্যাপ্লিকেশন ডেলিভারি এবং কনফিগারেশনের জন্য উপযুক্ত।
IIS সাধারণত Kestrel-এর সামনে একটি reverse proxy হিসেবে কাজ করে, যেখানে IIS সার্ভার ক্লায়েন্টের রিকোয়েস্ট গ্রহণ করে এবং Kestrel সার্ভারে পাঠায়।
ASP.NET Core অ্যাপ্লিকেশন IIS-এ চালানোর জন্য, web.config ফাইল কনফিগার করতে হয়:
web.config ফাইল (IIS reverse proxy):
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="false" />
</system.webServer>
</configuration>
এখানে AspNetCoreModuleV2
হল IIS-এর জন্য ASP.NET Core অ্যাপ্লিকেশন চালানোর জন্য একটি মডিউল, যা Kestrel সার্ভারে ক্লায়েন্টের রিকোয়েস্ট পাস করতে সাহায্য করে।
বৈশিষ্ট্য | Kestrel | IIS |
---|---|---|
প্ল্যাটফর্ম | ক্রস-প্ল্যাটফর্ম (Windows, macOS, Linux) | শুধুমাত্র Windows |
পারফরম্যান্স | হালকা ও দ্রুত | উচ্চ পারফরম্যান্স, তবে ভারী হতে পারে |
নিরাপত্তা | সার্ভারের প্রাথমিক নিরাপত্তা নেই | উন্নত নিরাপত্তা, যেমন SSL, অ্যাক্সেস কন্ট্রোল |
স্কেলিং | স্কেলিং সাপোর্ট থাকতে পারে, তবে নির্দিষ্ট নয় | স্কেলিং এবং লোড ব্যালেন্সিং সহজে করা যায় |
কনফিগারেশন | সহজ এবং কাস্টমাইজযোগ্য | কনফিগারেশন বেশি উন্নত এবং শক্তিশালী |
রিভার্স প্রক্সি | সাধারণত সরাসরি একা ব্যবহৃত হয় | Kestrel এর সাথে রিভার্স প্রক্সি হিসেবে কাজ করে |
আপনি যদি ASP.NET Core অ্যাপ্লিকেশন তৈরি করেন তবে Kestrel এবং IIS এর পারফরম্যান্স এবং নিরাপত্তার মধ্যে সঠিক সমন্বয় বেছে নিতে হবে, নির্ভর করে আপনার অ্যাপ্লিকেশনের ধরন এবং পরিবেশের উপর।
common.read_more